寫完php表單後發現,F5重新整理會重新送出上次的動作苦惱一陣子
以下是我的解決方法,來源忘了XD
在該表單.php加入
<?php
@session_start();
$security =false; // 是否是有效的執行
if($_POST) {
$security = $_POST['privatetoken'] == $_SESSION['token'];
if($security){
unset($_SESSION['token']);
}
}
$token=md5(getrandcode());
$_SESSION['token'] = $token;
function getrandcode(){
$str =array(1,2,3,4,5,6,7,8,9,'a','b','c','d','e','f','g','h');
$res='';
for($i=0;$i<4;$i++){
$rand=mt_rand(1,16);
$res .=$str[$rand];
}
return $res;
}
if($security){
// ... DIY ...
}
?>
表單內加入
<form ...>
...
<input type="hidden" name="privatetoken" value="<?php echo $token;?>">
</form>